char* pStr[] = {"123", "456", "789", "012", "345", "678", "901"};
이런 포인터 배열이 있습니다.
7개짜리 배열이네요.
이걸 순서를 바꾸려고 하는데요.
srand ( unsigned int(time(NULL)));
char* cTmp;
memset(cTmp, 0, sizeof(cTmp));
for(int i = 0; i < 7; i++)
{
int n = rand() % 7;
strcpy(cTmp, pStr[i]); // 탬프에 i번째 값 복사
strcpy(pStr[i], pStr[n]); // i번째에 n번째 값을 복사
strcpy(pStr[n], cTmp); // n번째에 탬프 값 복사
}
이렇게 했는데요.
i번째에 n번째 값을 복사할 때 에러나 나면서 죽네요.
왜 죽을 까요?
아 pStr은 원래 전역변수 값이고 구조체에 다른 변수에 메모리복사해서 쓰는 겁니다.
위 코드는 편의상 생략했습니다.
그러니까 strcpy는 구조체 내부의 값을 복사하는 겁니다.
노력을 안하셔서 죽은 듯... - dc App
ㄴ 노오력중입니다. ㅠ.ㅠ
C안한지 좀 되서 가물가물하긴 한데.. 첫줄 char** pStr이나 char* pStr[]로 선언해야 될텐데? 이후 코드는 읽지 않았읍니다.
ㄴ 오타였음. 수정했습니다.
굿
ㄴ 아니.... 글이 오타였고 소스는 계속 문제가 있습니다.
strcpy말고 그냥 대입하면 대는거네용
strcpy가 source랑 dest랑 같은 그거뭐냐 기억이안나네 하여간 같으면안됨
cTmp에 동적할당해줘야할거 같은데요? strcpy가 복사해서 둘 장소가 없잖아염
츄럴//되서->돼서 (되어 = 돼임) [리듬 맞춤법 봇♬]