我正在训练和学习C中使用的结构,但是当我试图创建一个数据结构时,我遇到了一个问题,就像打印随机数一样,我认为他打印的是数组指针中任何数组元素的地址,但我想知道如何修复它,使打印指向数组的指针的值。
#include <stdio.h>
#include <stdlib.h>
//creating a struct for a data structure
typedef struct {
int size;
int (*Arr)[10];
int top;
} Stack;
//function prototype
void print_Stack(Stack *pilha);
int main() {
Stack pilha;
int Elementos[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
pilha.Arr = &Elementos;
pilha.size = sizeof(Elementos) / sizeof(int);
print_Stack(&pilha);
return 0;
}
//creating a print stack function
void print_Stack(Stack *pilha) {
for (int x = 0; x < pilha->size; x++) {
printf("%d", pilha->Arr[x]);
}
}
字符串
我知道有一个更好的方法来创建一个数组的结构,无论如何,我想要一个解决方案,我如何打印的值在一个指针数组中使用它在另一种情况下,如果你解释它,它会变得更好:),因为我是初学者在编程,我喜欢学习它在困难的方式。
我试图让获取地址,把变量,并使*
再次获得值,但它不工作。
1条答案
按热度按时间drkbr07n1#
pilha->Arr
是一个指向int[10]
的指针,所以在打印数组中的值时,需要取消引用它(使用*
):字符串
另一种选择是将
Arr
改为int*
:型