gpt4 book ai didi

C |指针、数组和分段问题

转载 作者:行者123 更新时间:2023-11-30 15:24:58 25 4
gpt4 key购买 nike

我有以下代码片段

#include <stdio.h>
#include <string.h>
#define SIZE 3
typedef struct node{
char *name;
int id;
} Rec;
int main() {
Rec n[SIZE], *p;
int i;
char *s[]= { "one", "two","three"};

for (i = 0; i < SIZE; i++){
strcpy(n[i].name, s[i]);
//n[i].id = i;
}
p = n;
for (i = 0; i < SIZE; i++){
//printf("%2d %s\n", p->id, p->name);
p++;
}
getchar();
}

我已经在这个问题上坐了大约一个小时了,但我无法确定问题所在。当该程序到达 strcpy() 时,它就会被踢出。我不知道如何解决这个问题,但我感觉 n 有问题的分配。我确实尝试将其转换为 malloc ,但结果保持不变..

提前致谢!

最佳答案

您尚未为 structname 成员分配内存。您需要为它们分配内存

 for (i = 0; i < SIZE; i++){
n[i].name = malloc(strlen(s[i]) + 1);
}

关于C |指针、数组和分段问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28136176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com