-1

下面的代码有什么问题?当我尝试运行代码块时,它会关闭,为什么?我需要创建一个 700 行和 50 列的矩阵并填充单词。是否可以使用静态矩阵或动态矩阵?它不会因为它的大小而导致堆栈溢出吗?

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(){
int i,j;
char mat_palavras[100][100];


    for(i=0; i<100; i++){
        for(j=0; j<100; j++){
          mat_palavras[i][j]= 'i';
        }
    }
    for(i=0; i<100; i++){
        for(j=0; j<100; j++){
          printf("%s\n" ,mat_palavras[i][j]);
        }
    }
}
4

2 回答 2

2

此行导致问题

printf("%s\n" ,mat_palavras[i][j]);

而不是%s,使用%c.

于 2013-08-08T06:00:00.970 回答
0

它现在可以很好地工作。

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(){
int i,j;
char mat_palavras[105][105]; //expand your 2D-array's size


    for(i=0; i<100; i++){
        for(j=0; j<100; j++){
          mat_palavras[i][j]= 'i';
        }
        mat_palavras[i][j] = '\0'; //Add this statement, '\0' is the end mark of string
    }
    for(i=0; i<100; i++){
        //for(j=0; j<100; j++){ //Delete this statement
          printf("%s\n" ,mat_palavras[i]);
        //}
    }
}
于 2013-08-08T09:21:32.147 回答