私はCに非常に慣れていません。これは、私が機能させようとしているテストプログラムです。目的は、動的に生成されたあるマトリックスの文字を別のマトリックスに配置することです。私が持っているコードはコンパイルされますが、実行が終了しません。
一番下のループをコメントアウトすると、printfステートメントは正常に実行されますが、コメントを外すと、実行され続けて印刷されません。私はCがシーケンシャルに働いていましたか?ループ内の何かが壊れている場合、それが printf ステートメントに影響を与えるのはなぜですか?
コードは次のとおりです。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main (void)
{
int n,m,i;
char **matrix = (char**) malloc(m * sizeof(char*));
for ( i = 0; i < m; i++ )
{
matrix[i] = (char*) malloc(n * sizeof(char));
}
char **oldMatrix = (char**) malloc(m * sizeof(char*));
for ( i = 0; i < m; i++ )
{
oldMatrix[i] = (char*) malloc(n * sizeof(char));
}
n=1;
m=2;
int indc;
matrix[n][m];
matrix[1][1]='1';
matrix[1][2]='2';
oldMatrix[1][2];
printf("%c %c",matrix[1][1],matrix[1][2]);
int r=0;
for (indc=0; indc<=1; indc++)
{
printf("4");
oldMatrix[r][indc]=matrix[r][indc];
}
}