下面的代码有什么问题? 当我尝试运行时,代码块会关闭,为什么?我需要创建一个包含700行和50列的矩阵并填充单词。是否可以使用静态矩阵或dinamic矩阵?不会因为它的大小而导致堆栈溢出吗?
#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]);
}
}
}
答案 0 :(得分:2)
此行导致问题
printf("%s\n" ,mat_palavras[i][j]);
而不是%s
,请使用%c
。
答案 1 :(得分: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]);
//}
}
}