※포인터 배열 : 포인터들의 배열
배열의 각 요소가 포인터로 메모리를 가리킨다.
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
|
#include <stdio.h>
#include <stdlib.h>
typedef struct stacknode{
int data;
struct stacknode *link;
}StackNode;
void push(StackNode *s, StackNode **add, int value){
static int i=0;
StackNode *node=(StackNode*)malloc(sizeof(StackNode));
node->data=value;
node->link=NULL;
s->link=node;
*(add+i)=node; //add[i]=node; 도 가능
i++;
}
int main(){
StackNode *add[10]; //포인터배열
StackNode *stack1=(StackNode*)calloc(sizeof(StackNode),1); //first node=dummy node;
//연결리스트 헤더가 변하지 않게 하기 위해서
push(stack1, add, 10);
push(stack1, add, 20);
push(stack1, add, 30);
push(stack1, add, 40);
for(int i=0;i<4;i++){
printf("%d ", add[i]->data);
}
}
|
cs |
※배열 포인터 : 배열의 포인터
배열을 가리키는 하나의 포인터
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#include <stdio.h>
int main(void)
{
char (*arr)[3];
char tmp[3] = {'a', 'b', 'c'};
arr = &tmp;
printf("tmp의 주소 : %p\n", tmp);
printf("arr의주소: %p\n", arr);
for (int i = 0; i < (int)sizeof(*arr); i++){
printf("%c", (*arr)[i]);
}
printf("\n");
}
|
cs |
'C > 잡다한 C' 카테고리의 다른 글
형식지정자 %3d (0) | 2022.09.19 |
---|---|
Enum 열거형 (0) | 2022.04.20 |
연결리스트의 배열 해보기! (0) | 2022.04.17 |
난수 생성 (0) | 2022.04.15 |
구조체의 멤버가 포인터일때 참조, 구조체 포인터의 멤버 참조 (0) | 2022.04.13 |