>source

저는 코딩의 세계에 새로운 해커 순위 에서이 작업을 수행하고, 누군가가 내 code를 보시고 이것이 옳은지 말해 줄 수 있습니까? 그리고 어떻게 나아 낼 수 있습니까?

  1. 사용자에게 정수 목록 수를 요청합니다. 변수 m에 숫자를 저장합니다.
  2. 길이 m의 이중 포인터 배열을 동적으로 할당합니다. 포인터의 각 셀은 정수 목록을 가리 킵니다 (아래 읽기).
  3. 사용자가 입력 해야하는 각 목록에 대해 사용자에게 목록의 길이를 물어보십시오. 변수 n에 입력을 저장하십시오. 길이 n + 1의 배열을 동적으로 할당합니다. 배열의 첫 번째 셀에 n 값을 저장하십시오. 그런 다음 목록의 정수를 사용자에게 요청하고 나머지 배열을 채 웁니다. 목록이 비 감소 순서로 정렬되어 있다고 가정합니다.

#include < stdio.h >

#include <stdlib.h>int main()
{
int m,n,i,j,t,**A,b;
printf("How many lists ?\n");
scanf("%d",&amp;
m);
A= (int**)malloc(m*sizeof(int*));
for(i=0;i<m;i++)
{
    printf("what is length of list %d\n",(i+1));
    scanf("%d",&amp;
n);
   int *b= (int*)malloc(n*sizeof(int));
    for(j=0;j<n;j++)
    {scanf("%d",&amp;
b[i]);}
}
return 0;

}

필요한 것으로 보입니다. 목록의 배열을 만드는 것이 아니라 포인터 배열 인 Jagged 배열이며, 각 포인터는 배열의 첫 번째 요소를 가리 킵니다. 이 작업을 수행하려면 변수가 아닌 [I]= malloc (...)와 같은 뭔가가 필요합니다.

Some programmer dude2021-06-17 05:48:14

"배열"이라는 용어를 알리고있는 용어는 실제로 배열이 포함되어 있지 않습니다. 당신은 두 가지 범주의 할당을 가지고 있습니다. int ** a; 이는 포인터 대 int (단일 포인터)입니다. M 개의 포인터를 보관할 수있는 메모리 블록을 할당하고 mALLOC ()에서 A로 돌아 가기를 할당 한 다음 각 목록에 대해 N 개의 정수에 대한 저장소를 할당합니다. 그리고 다음 포인터 (예 : [0], [1] 등) 로의 리턴을 할당 한 역순으로 메모리를 무료로 할당합니다.

David C. Rankin2021-06-17 05:48:59

그리고 "새로운 코딩을위한 새로운"및 프로그래밍 및 C 프로그래밍 언어를 배우려고하는 경우, 소위 "경쟁"사이트에 가지 않고 자원을 가르치거나 학습하지 않기 때문에 추천합니다. 배우고 싶어는 정말 나쁜 습관입니다. 일부 책을 읽고 수업을 읽고 가져 가십시오.

Some programmer dude2021-06-17 05:50:01

또한, C에서, malloc의 반환을 주조 할 필요가 없으므로 불필요합니다. 참조 : Malloc의 결과를 던 졌습니까?

David C. Rankin2021-06-17 05:50:51
  • 이전 c : "undefined to to"to to to "
  • 다음 python : PHP : 파이썬에서 업로드 된 폴더에 파일을 저장하는 방법