ここで初歩的な質問がありますが、ここで何が問題なのか理解できません。ここに次のコードがあります。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void copyFrom(char * mStr, char * str);
int main() {
char * srcStr = "Robert bought a good ford car";
char * dstStr = NULL;
copyFrom(srcStr, dstStr);
printf("The string copied here is %s", dstStr);
return 0;
}
void copyFrom(char * str, char * mStr)
{
if(!mStr) {
mStr = (char *)malloc((strlen(str)) + 1);
if(mStr == NULL)
return;
}
while(*mStr++ = *str++) {
;
}
mStr[strlen(str)] = '\0';
}
これは文字列をコピーしませんが、dstStr の char ポインターの代わりに配列を使用すると、すべて正常に動作します。
ここで何が間違っているのか教えてください。