我在一個簡單的文件系統,其(明顯)包含文件夾,文件等的C結構構件是一個字符串,如何分配字節直接
的文件夾由a表示(一個簡化版本)工作結構,而在RAM中,像這樣:
typedef struct{
char label[20];
unsigned int id;
t_node contents[50];
} folder;
現在,我當然希望標籤包含在它的原始字節字符串名稱(甚至更好的將是原始字符串沒有尾隨0,但這是一個犧牲我願意做)。
不,這裏是我如何創建和使用結構:「分配給從類型‘的char *’類型‘的char [20]’當不兼容的類型」
folder* myFolder = (folder *) malloc(sizeof(folder));
myFolder->label = "name";
//Which doesn't work, if I try this:
char name[20] = "name";
myFolder->label = name;
//this too, doesn't work.
錯誤消息說。 我的理解,但不知道如何解決。
在此先感謝
對於'strncpy'而不是'strcpy' +1 – Rob
我不同意; 'strncpy'並不比'strcpy'安全。它被引入來處理結構中的固定長度的名稱字段,而不是提供「有界的」strcpy。 – md5
@Kirilenko:那麼,我們*是處理固定長度的struct字段,不是嗎? – NPE