- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经搜索过这个问题,之前的问题似乎与我的问题无关。我似乎在将节点传递给函数时断开连接,出于某种原因,我在尝试编译时不断收到此错误。
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char c;
int titleCount;
int authorCount;
char bookTitle[35];
char author[35];
/* Create Struct */
typedef struct bookData {
char bookTitle[35];
char author[35];
int book_stock;
float retail_price;
int wholesale_purchased;
int customer_purchased;
struct bookData *book;
} new_book;
/*Create Node */
typedef struct Node {
new_book books;
struct Node *next;
} node_t;
/* We are GUARANTEED at least 1 input value, so go ahead and initialize the head */
node_t *head = NULL; /*Initalize head to NULL since it is empty */
head = malloc(sizeof(node_t));
if(head == NULL) {
printf("allocation failed");
return 0;
}
head -> next = NULL;
/*Memory allocation successful */
/*Might as well populate the head with data from the user */
titleCount = 0;
authorCount = 0;
printf("Enter Title\n");
while(( c = getchar()) != '\n') {
bookTitle[titleCount++] = c;
}
bookTitle[titleCount] = '\0';
printf("%s\n", bookTitle);
strcpy(head -> books.bookTitle, bookTitle);
printf("Enter Author\n");
while(( c = getchar()) != '\n') {
author[authorCount++] = c;
}
author[authorCount] = '\0';
strcpy(head -> books.author, author);
printf("Bookstock #:\n");
scanf("%d", &(head -> books).book_stock);
printf("Enter retail price $:\n");
scanf("%f", &(head -> books).retail_price);
printf("Enter Wholesale purchased quanity:\n");
scanf("%d", &(head -> books).wholesale_purchased);
printf("Enter quantity sold:\n");
scanf("%d", &(head -> books).customer_purchased);
printf("%s\n", head -> books.bookTitle);
printf("%s\n", head -> books.author);
printf("%d\n", head -> books.book_stock);
printf("%.2f\n", head -> books.retail_price);
printf("%d\n", head -> books.wholesale_purchased);
printf("%d\n", head -> books.customer_purchased);
takeUserInput(head);
}
/*Now populate all other nodes, until user enters END_DATA */
void takeUserInput(node **head) {
int titleCount;
int authorCount;
char bookTitle[35];
char author[35];
int flag = 0;
while(1) {
titleCount = 0;
authorCount = 0;
node_t *temp = NULL;
temp = malloc(sizeof(node_t));
temp -> next = NULL;
printf("Enter Title\n");
while(( c = getchar()) != '\n') {
bookTitle[titleCount++] = c;
}
bookTitle[titleCount] = '\0'
if(bookTitle == "END_DATA") {
flag = 1;
break;
}
strcpy(temp -> books.bookTitle, bookTitle);
printf("Enter Author\n");
while(( c = getchar()) != '\n') {
author[authorCount++] = c;
}
author[authorCount++] = '\0';
strcpy(temp -> books.author, author);
printf("Bookstock #\n");
scanf("%d", &(temp - > books).book_stock);
printf("Enter retail Price in $\n:");
scanf("%.2f", &(temp -> books).retail_price);
printf("Enter wholesale purchased\n:");
scanf("%d", &(temp -> books).wholesale_purchased);
printf("Enter customer purchased\n:");
scanf("%d", &(temp -> books).customer_purchased);
if(temp -> books.book_stock < head -> books.book_stock) {
void pushToFront(head, temp);
} else {
void insert(head,temp);
}
}
if(flag == 1) {
free(temp);
}
}
void pushToFront(node_t **head, node_t *temp) {
temp -> next = *head;
*head -> temp;
}
void insert(node_t *head, node_t *temp) {
node_t *current = head;
while(current -> next -> new_book.book_stock < temp -> new_book.book_stock || current -> != NULL) {
current = current -> next;
}
if(current -> next = NULL) {
current -> next = temp;
}
node_t *xtraNode = current -> next
current -> next = temp;
temp -> next = xtraNode;
}
错误:
lab3p1.c:114: error: expected ‘)’ before ‘*’ token
lab3p1.c:180: error: expected ‘)’ before ‘*’ token
lab3p1.c:188: error: expected ‘)’ before ‘*’ token
据我了解,我只需要在调整head指向哪个节点时传入一个双指针pushToFront
。所以在 insert()
上,我实际上并没有调整头指针,只是调整了特定节点的 next pointer
和正在插入的节点。所以我对为什么会出现这个错误感到有点困惑。
最佳答案
我花了一些时间尝试编译您的代码,但错误数量惊人。您的代码需要您的认真关注。
先从简单的事情开始。首先将结构的声明移到 main
之前:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* Create Struct */
typedef struct bookData{
char bookTitle[35];
char author[35];
int book_stock;
float retail_price;
int wholesale_purchased;
int customer_purchased;
struct bookData *book;
}new_book;
/*Create Node */
typedef struct Node{
new_book books;
struct Node *next;
}node_t;
void takeUserInput(node_t **head);
void pushToFront(node_t **head, node_t *temp);
void insert(node_t *head, node_t *temp);
int main(){
//...
}
并将您的函数原型(prototype)也放在 main
之前。
void takeUserInput(node **head){
应该是:
void takeUserInput(node_t **head){
和
takeUserInput(head);
应该是:
takeUserInput(&head);
和
void takeUserInput(node_t **head){ // node_t not node sg7
int titleCount;
int authorCount;
char bookTitle[35];
char author[35];
int c; // declaration was missing sg7!
稍后
bookTitle[titleCount] = '\0' // missing ;
if(bookTitle == "END_DATA"){ // this is NOT the way to compare strings
我还注意到您还没有接受一个答案。
我到这里就结束了,我让你自己继续。祝你好运。每个人都必须背着自己的十字架。
关于c - 在节点中传递 ')' token 之前预期为 '*',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49098139/
我正在使用 JavaFX 8 创建一个应用程序。我使用拖/放动态更改网格 Pane 的内容。我希望每行或每行/列迭代 GridPane 内容。JavaFX 允许通过指定行和列在 GridPane 中添
我正在尝试将图像拖放到div上。图像没有被拖到div上并给出以下错误 Uncaught TypeError: Failed to execute 'appendChild' on 'Node': pa
我正在 android studio 中创建内部构建 AR 导航。我正在寻找一种方法将 anchor 与其他 anchor 或 anchor 节点/节点“连接”起来。我不确定使用哪一个。基于我将强制用
我在 Hive 上运行一些作业:首先是 4 节点,然后是 2 节点。令我惊讶的是,我的 2 节点性能比我的 4 节点更好。 首先,我在一个 4 节点(4 个事件节点)上运行查询,然后关闭 2 个节点(
我有 Node* current ,我在其中存储指向列表“顶部”当前节点的指针。当我将一个新节点设置为当前节点时,出现错误: '=' : cannot convert from 'CircularDo
我是 dcos Mesos 的新手,在本地 Ubuntu 机器上安装了 dc os。 我可以查看 dcos 仪表板。 但我无法使用 dcos node ssh --master-proxy --lea
在 JavaFX 中,是否有类似 setLayout(); 的东西?或 setBounds(); ? 例如,我想将按钮定位到我想要的位置。 最佳答案 JavaFX 场景图上的所有内容都是 Node .
我正在开发一个 JavaFX 应用程序,其中我开发的类(从 javafx.scene.Parent 扩展)是根据用户在 ListView 控件中单击的条目动态创建的。 只是要清楚这个节点,它不是使用像
我正在尝试为节点-边缘关系创建一个类图,因为它可以在有向图中找到。我想传达的是,Nodes 引用了 Edges,Edges 也引用了 Nodes。每个 Edge 都恰好需要两个 Node(源和目标)。
在mapreduce作业期间,单个任务将在随机节点上运行,是否有任何方法限制应在其中运行任务的节点? 最佳答案 Hadoop不会选择节点来随机运行任务。考虑到数据局部性,否则将有很多网络开销。 任务与
有什么区别: a) nodetool 重建 b) nodetool 修复 [-pr] 换句话来说,各个命令到底是做什么的? 最佳答案 nodetool重建:类似于引导过程(当您向集群添加新节点时),但
我已将第一个 OneToMany 关系添加到我的 hibernate 3.6.10 项目中。这是一个类: /** * */ package com.heavyweightsoftware.leal
是否有可能找到正在监听触发当前函数的事件的元素? 在下面的代码中,event.target 返回 #xScrollPane 和 event.currentTarget 和 event 的最低子节点.f
我正在尝试覆盖我数据库中的一些数据。结构很简单,就是: recipes { user_1{ recipe_1{data} recipe_2{data} } user_2{
我使用 setInterval 来运行该函数,但它会多次执行函数 2... 如何在输入中插入一个值后执行函数 第一个输入与其余输入的距离不同 如何在插入 val(tab 选项)后将插入从 1 个输入移
我不知道代码有什么问题,但在 visual studio 中不断收到这些错误消息。 Error 18 error C1903: unable to recover from previous e
我正在尝试从其类中获取 SharePoint 搜索导航节点的对象。 var nodes = $("div.ms-qSuggest-listItem"); 我正在获取节点对象,现在想要获取“_promp
D:\nodeP>node main.js module.js:327 抛出错误; ^ 错误:在 Function.Module 的 Function.Module._resolveFilename
struct node{ int key, prior, cnt, val; node *l, *r; node(){} node(int nkey) : key(nkey),
我有以下代码使用迭代器将项目插入双链表。这就是我们被要求这样做的方式。代码有效,但问题是我有 24 字节的绝对内存泄漏。 NodeIterator insert(NodeIterator & itrP
我是一名优秀的程序员,十分优秀!