私の質問は非常にシンプルですが、googleing彼らは私に有用な結果を得ていないことを知っています...彼らはおそらくあまりにも簡単です!Cでポインタアドレスを表示する[2つの質問]
第1
char* createStr(){
char* str1 = malloc(10 * sizeof(char));
printf("str1 address in memory : %p\n", &str1);
return str1;
}
int main(void){
char* str2 = createStr();
printf("str2 address in memory : %p\n", &str2);
}
結果:
str1 address in memory : 0x7fffed611fc8
str2 address in memory : 0x7fffed611fe8
なぜアドレスがcreateStr()関数の中に異なると外れているとどのようにすることができます私は無料(STR1)???
第2
int main(int argc, int *argv[]){
printf("Basename is %s ", (char*) argv[0]);
if(argc > 1){
printf("and integer arg is : %d.\n", (int) *argv[1]);
}
}
私がコンパイルし$ ./test 3
を実行した場合、どのように私はint型3を得ることができますか?
結果:
Basename is ./test and integer arg is : 1380909107.
質問ごとに1つの質問をしてください。 –