【发布时间】:2021-12-10 12:40:38
【问题描述】:
我有一个任务要编写一个函数,该函数从头文件中的结构动态初始化一个数组。并且对于某些问题,我不断收到相同的错误“使用未初始化的局部变量'columnData' 这是头文件
#ifndef QUEUE_H
#define QUEUE_H
/* a queue contains positive integer values. */
typedef struct queue
{
int arraySize;
int* column;
} queue;
void initQueue(queue* q, unsigned int size);
void cleanQueue(queue* q);
void enqueue(queue* q, unsigned int newValue);
int dequeue(queue* q); // return element in top of queue, or -1 if empty
#endif /* QUEUE_H */
这是我的代码:
#include <iostream>
#include "queue.h"
int main()
{
queue* columnData;
unsigned int size = 0;
std::cout << "Please enter column size: ";
std::cin >> size;
initQueue(columnData, size);
printf("%d", &columnData->column[0]);
}
void initQueue(queue* q, unsigned int size) {
q->column = new int[size];
q->column[0] = 5;
}
void cleanQueue(queue* q) {
}
void enqueue(queue* q, unsigned int newValue) {
}
int dequeue(queue* q) {
return 1;
}
如果有人可以帮助我,那就太好了。
【问题讨论】:
-
你永远不会在
columnData中分配一个值main,然后你读取那个未初始化的值传递给一个函数。您可能希望拥有queue columnData并将其作为&columnData传递给您的函数。最好是采用所有这些功能并使其成为queue的成员。
标签: c++ struct compiler-errors initialization function-definition