C++を学び始めたばかりです。構造に問題がありました。構造体にデータを追加しているときに、プログラムが構造体に文字列を追加しようとするとくちばしになります。どこに問題があるのか 本当にわかりません。ここに私のコードがあります:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
typedef struct hardware
{
int id; // will store information
string name;
int year;
float price;
hardware *next; // the reference to the next hardware
};
hardware *head = NULL; //empty linked list
int tempid = 0,tempyear=0, hardware_number = 0, counter = 0;
string tempname="";
float tempprice=0;
cout<<"Unesite sifru proizvoda:";
cin>>tempid;
cout<<"Unesite naziv proizvoda:";
cin>>tempname;
cout<<"Unesite godinu proizvoda:";
cin>>tempyear;
cout<<"Unesite cijenu proizvoda:";
cin>>tempprice;
cout<<"Unijeli ste : ID: "<<tempid<<", naziv: "<<tempname<<", godina: "<<tempyear<<", cijena: "<<tempprice<<", hardware No: "
<<++counter;
hardware *temp;
temp = (hardware*)malloc(sizeof(hardware));
temp->id = tempid;
temp->name = tempname;
temp->year = tempyear;
temp->price = tempprice;
temp->next = head;
head = temp;
return 0;
編集 1: プログラムを実行すると、正常にコンパイルされます。構造 (ID、名前、価格、年など) を埋めるデータを入力した後、この行でプログラムが中断されます。
temp->name = tempname;
エラー出力は次のとおりです。
An unhandled exception of type 'System.AccessViolationException' occurred in proba.exe
Additional information: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.