1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| #include <stdlib.h> #include <string.h> #include <stdio.h>
char* getStr1() { char* p = "abcd"; return p; }
char* getStr2() { char* p = "abcd"; return p; }
char* getStr3() { char* p = "abcde"; return p; }
char* getStrError() { char buf[100] = { 0 }; strcpy_s(buf, 100,"abcde"); return buf; }
int main() {
int n1 = 0; int n2 = 0; printf("n1 address: %d \n", &n1); printf("n2: address: %d \n", &n2); char c[100] = { 'a', 'b', 'c'}; printf("c[0]: address: %d \n", &c[0]); printf("c[1]: address: %d \n", &c[1]); char* p1 = getStr1(); char* p2 = getStr2(); char* p3 = getStr3(); char* p4 = (char*)malloc(100); printf("p1: %s, p1 value: %d, p1 address: %d \n", p1 , p1, &p1); printf("p2: %s, p2 value: %d, p2 address: %d \n", p2, p2, &p2); printf("p3: %s, p3 value: %d, p3 address: %d \n", p3, p3, &p3);
char** p5 = (char**)malloc(3 * sizeof(char*)); char* p6 = (char*)malloc(4 * sizeof(char));
for (int i = 0; i < 3; i++) { p5[i] = (char*)malloc(100*sizeof(char)); printf("p5[%d] value: %d, address: %d \n", i, p5[i], &p5[i]); }
char* p7 = (char*)malloc(4 * sizeof(char));
printf("p5 value: %d, p5 address: %d \n", p5, &p5); printf("p6 value: %d, p6 address: %d \n", p6, &p6); printf("p7 value: %d, p7 address: %d \n", p7, &p7);
system("pause"); }
|