Реализация связанного списка в C #, который может быть прочитан программой на C - PullRequest
0 голосов
/ 10 мая 2018

Мне нужно создать связанный список в C # для передачи утилите, написанной на C. Мне нужно передать адрес (HEAD) этого связанного списка в утилиту, написанную на C, которая будет сериализовать эти данные для отправки по сети разъем. Я обнаружил, что реализации связанного списка в C # выполняются через класс, а не через структуры. Как и в этом c-sharpcorner.com руководстве, в котором реализован связанный список с классом.

Я видел это Переполнение стека ответ Ридом Копси , чтобы использовать Класс вместо структур. В этом ответе

public unsafe struct Livro
{
    public string name;
    public Livro* next;
}

изменено на

 public class Livro
 {
    public string Name { get; set; }
    public Livro Next { get; set; } 
 }

Это мой вопрос,

1) Если я использую класс вместо структуры и создаю связанный список, он будет создан в памяти так же, как и со структурой. Другими словами, если я создаю связанный список с классом, может ли программа на С (использовать структуру с идентичными полями) читать это из памяти?

2) Если нет, то как это осуществить? Это код, который я реализовал, но получаю ошибку

Ошибка : невозможно получить адрес, получить размер или объявить указатель на управляемый тип

unsafe public struct DbNode
{
    public ushort handle;                    
    public ushort perm;                      
    public ushort flags;                                         
    public ushort size_value;                
    public byte *value;                      
    public DbNode *next;                
};

как исправить эту ошибку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...