我目前有以下代碼。一個結構內的C字符串的malloc內存
struct qnode
{
char *path;
struct qnode *next;
}
typedef struct qnode Node;
我的代碼在這一點失敗,但是當我嘗試在struct qnode中使用malloc空間時。
void add(Node *front, Node *back,char **path)
{
/* Create the new node */
Node *cur = (Node *)malloc(sizeof(Node));
/* Verify node successfully created */
if(cur)
{
/* Populate Members of Node */
cur->path = malloc(strlen(*path)); /* fails here */
printf("Malloc path success");
cur->path = *path;
我已經驗證了strlen確實在正確的指針上運行,它確實返回了長度的大小。出於某種原因,雖然我在這一點上遇到了分段錯誤,但我不明白爲什麼。
F.y.i這是一個任務的一部分但是,這個簡單的malloc行不是明確分配的東西,也不是使用C語言。我被允許在作業上做C++,但是我選擇了C來獲得更多關於該語言的知識。
感謝您的幫助!
什麼是'path'類型的一部分嗎?爲什麼要丟棄第二個'malloc'返回的指針? – Mat