使用strcat使用单个字符进行分段错误

时间:2014-01-10 00:28:06

标签: c strcat

这是我的代码:

int min = 0, i, z;
char star[18][100] = {0};
int temp = 0;
char TheStar[2];
TheStar[0] = '*';
TheStar[1] = '\0';


for(i = 0; i < 17; i++){
    if(min == 0 && PerHundredThousand > 0)
     min = PerHundredThousand[i];
    if(PerHundredThousand[i] < min)
     min = PerHundredThousand[i];}


for(z = 0; z < 17; z--){
     if(PerHundredThousand[z] > 0)
      temp = PerHundredThousand[z] / min;
     while(temp > 0){
         strcat(star[z], TheStar);
         temp = temp - 1;}

}

正如你所看到的那样,只要temp高于0,我就会尝试使用strcat来添加'*',但是我遇到了分段错误:

strcat(star[z], TheStar);

感谢任何帮助。提前致谢。

2 个答案:

答案 0 :(得分:3)

第二个循环显示错误:

for(z = 0; z < 17; z--){

应该是:

for(z = 0; z < 17; z++){

否则它会比预期循环更多次(以及写入无效的数组位置)。

答案 1 :(得分:1)

在第一个循环中出现错误

if(min == 0 && PerHundredThousand > 0) 

应该是

if(min == 0 && PerHundredThousand[i] > 0)