고수님들 이것좀 한번 살펴주세요 (동적할당관련)
새누
2023.04.01
질문 제목 :
큰배열에 값을 입력받고 그것에 사이즈조사를해서 적절한 크기의 메모리를 동적할당으로 만들어서 포인터배열로 가르키게하는구조인데요 테스트를 하니까 자꾸 포인터배열 5개가 다 같은값이 나와서 너무 황당하기도해서 질문올려봅니다
질문 내용 :
#include stdio.h
#include string.h
#include stdlib.h
void move(char * ba,char ** pt,int n)
{
pt[n]= (char*) malloc((sizeof(char)*(strlen(ba)+1)));//배열생성
*pt[n]=ba;//배열복사 (이거 * 써야맞지 않나요?)printf(%s,pt[0]);//테스트}
int main()
{
char * pt[5];
int n;
char ba[100];
puts( 5개의 문장을 입력하세요);
for(n=0; n5; n++){
printf(%d 번째문장입력 : ,n+1);
fgets(ba,sizeof(ba),stdin);
move(ba,pt,n);
}
for(n=0; n5; n++)//테스트
printf(%s\n,pt[n]);
}