使用数组时的分段错误 #包括 类型定义结构StockDetail{ 字符*名称; int代码; 国际价格; }股票; 内部主(空) { 库存a[200];库存i;库存b; 对于(i=0;i

使用数组时的分段错误 #包括 类型定义结构StockDetail{ 字符*名称; int代码; 国际价格; }股票; 内部主(空) { 库存a[200];库存i;库存b; 对于(i=0;i,c,struct,segmentation-fault,C,Struct,Segmentation Fault,在这里,您正在以名称进行输入,它只是char*它没有分配给它的内存,您可以将其声明为具有足够大小的char数组,或者在输入之前使用malloc分配内存您不为股票分配任何空间。name。使用char[100]或分配一些空间 比如: scanf("%s",a[i].name); 下次尝试生成一个!没有执行的行比实际执行的行多。 scanf("%s",a[i].name); for(i=0; i<20 ; i++ ) { char tempname[100]; printf(

在这里,您正在以名称进行输入,它只是
char*
它没有分配给它的内存,您可以将其声明为具有足够大小的char数组,或者在输入之前使用malloc分配内存您不为
股票分配任何空间。name
。使用
char[100]
或分配一些空间

比如:

scanf("%s",a[i].name);
下次尝试生成一个!没有执行的行比实际执行的行多。
scanf("%s",a[i].name);
for(i=0; i<20 ; i++ )
{
    char tempname[100];
    printf("Stock %i\n",i+1);
    printf("Name:");
    scanf("%s",tempname);
    a[i].name=strdup(tempname);
typedef struct StockDetail {
char name[100];
int code;
int price;

} Stock;