Tôi biết rằng câu hỏi của tôi rất đơn giản nhưng googleing chúng không giúp tôi có được kết quả hữu ích ... Chúng có lẽ quá đơn giản !!In địa chỉ con trỏ trong C [hai câu hỏi]
số 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);
}
Kết quả:
str1 address in memory : 0x7fffed611fc8
str2 address in memory : 0x7fffed611fe8
Tại sao các địa chỉ khác nhau trong và ngoài của createStr() chức năng và làm thế nào tôi miễn phí (str1) có thể ???
số 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]);
}
}
Nếu tôi biên dịch và chạy $ ./test 3
, làm thế nào tôi có thể nhận int 3?
Kết quả:
Basename is ./test and integer arg is : 1380909107.
Một câu hỏi cho mỗi câu hỏi, xin vui lòng –