私の知る限り、戻り型関数から受け取った値は、それが呼び出された場所に格納する必要があります。そうしないと、エラーになります。以下のコードがどのように機能するかを説明してください。
#include <iostream>
#include <stdlib.h>
#include<assert.h>
//Returns a pointer to the heap memory location which stores the duplicate string
char* StringCopy(char* string)
{
long length=strlen(string) +1;
char *newString;
newString=(char*)malloc(sizeof(char)*length);
assert(newString!=NULL);
strcpy(newString,string);
return(newString);
}
int main(int argc, const char * argv[])
{
char name[30]="Kunal Shrivastava";
StringCopy(name); /* There is no error even when there is no pointer which
stores the returned pointer value from the function
StringCopy */
return 0;
}
Xcodeでc++を使用しています。
ありがとうございました。