arrays - C 中权重 [a]= 数据上的段错误;

标签 arrays c segmentation-fault ansi-c

fscanf(ifile, "%c", &jnk);
/* If there's a height, this will be a ". if not, it'll be a ,*/
if ((jnk = '\"') || (jnk != ',')) {
    printf("%c", jnk);
    while(fscanf(ifile, "%c", &data) && data != ',' && data != '\"' && data != '\'') {
        printf(" %c ", data);
        weight[a]= data;
        a++;
    }
    weight[a] = '\0';
    player[n].weight=atof(weight);
    printf("%.0f ", player[n].weight);
} else if(data == ' ' || data == ',') {
    player[n].weight= 0;
    printf("%.0f ", player[n].weight);
}

GDB 告诉我将数据存储到权重中会导致段错误。谁能告诉我为什么?

最佳答案

问题出在这里:

我希望您将 ", 分配给 a。当您使用 weight[a] 时,您会收到错误,因为 ASCII获取字符的值,该值可能超出您声明的数组大小的范围

关于arrays - C 中权重 [a]= 数据上的段错误;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16509732/

相关文章:

javascript - Ajax 和 JavaScript,如何*不*使用 JQuery 来 POST 数组?

c - C 数组的大小

python - 当 QApplication 退出时,QT 引发段错误(核心已转储)

c - C函数中段错误的未知原因

java - Mongo $pullAll 在对象数组上

PHP 数组 : integer index vs string index

c - 如何使新结构与旧结构兼容?

c - fwrite后目标文件为空c语言

c - fputs 制造问题

android - Android 内部存储的视频播放最终挂起/崩溃