!!!!!
프갤성님들의 도움을 받아서 고자를 고자가 아니게 만들었습니당.
답변주신분들 ㄳㄳㄳㄳ.
for (i=0; i<s; i++) {
for (j=0; j<p; j++) {
printf(\"%3d\",a[i][j]);
}
printf(\"\\n\");
}
↓↓
for (i=0; i<s; i++) {
for (j=0; j<p; j++) {
a[i][j] = i*p+j;
printf(\"%3d\",a[i][j]);
}
printf(\"\\n\");
}
문제의 더러운 행렬출력부분이었음....ㅠㅠ...
난 당연히 튀어나올줄 알았는데..그 당연한게 당연한게 아니었음.ㅠㅠ
scanf(\"\\n%d\",&p); 이게 좀 이상하지 않아? 보통은 scanf(\"%d\\n\", &p)뭐 이런식으로 하지 않나?
s값이 입력이 안될것같은데... 혹시 p에 s값이 들어가있고 s는 완전 이상한 값으로 되어있지 않아?
아 아니다 그건 아닌가보다 ㅎㅎ
%d\\n하면 엔터 두번쳐짐;
저장이 배열로 만들어놓은게 저장이 안된다는 말씀?....
(*a[j])=j+1;이렇게 하면 a[j][0]들만 값이 설정되는것같은데.
(*a[j])랑 a[j][0]이랑 같은거지? 그러니깐 a[0][0], a[1][0], a[2][0], ...들만 값이 설정되니까 출력할때도 그 값들만 제대로 예쁘게 나오는것같아
ㅇㅇ...사실 나도 1차원 동적할당할때는 기존에 숫자들만큼 늘려주면 되니까 괜춘했는데 2차원으로 넘어오니까 행을 고정시켜주고 열을 바꿔줘야되드라고. 근데 그게...어딜 손대야할질 모르겠어; 일단은 행/열은 나오게하긴 했는데 더이상 뭘 어케..쓰레기값이 나오니까 배열이 만들어지긴 만들어 지는데 채우는게 안됨 아오...고자같은 결과값
a = (int**)malloc(sizeof(int)*(s)); for (j=0; j<s+p; j++) { (a[j]) = (int*)malloc(sizeof(int)*p); (*a[j])=j+1; } 이거를
a = (int**)malloc(sizeof(int)*s*p);
for( i=0; i<s*p; i++) a[i] = i;
위의 두개로 바꿔봐 ㅎ
횽...고마워.....근데 행열 받으니까 바로 에러뜨는데;;;동적할당에서 에러뜨는거 같어.
아 ㅋㅋ for( i=0; i<s*p; i++) a[i] = i; 이게 아니구나.
for( i=0; i<s*p; i++) a[0][i] = i;이렇게 하면 될것 같은데 좀 병신같다. 그냥
for(i=0; i<s; i++) for(j=0; j<p; j++) a[i][j] = i*p+j;
이걸로 해봐. 그래도 안돼?
<잘못된 점 딱 3개 지적한다.> 1. for (j=0; j<s+p; j++) 2.(*a[j])=j+1; 3. free 는 어디로?
↑아..됬어..secure횽 감사합니다. 그리고 바로 위에 횽도 ㄳㄳ... 내꺼랑 새로 바꾼 소스랑 차이점은 결국 저장을 못한거?..이게 고데레횽이 말한 줄줄 샌다는 의미?...
진짜 흘러가는 저 구름처럼 소스를 붙잡질 못했구나....