Alle meine Fehler sind genau das gleiche und ich kann nicht herausfinden, warum. Jeder Rat wäre hilfreich. Ich muss prozedurales C++ verwenden."Bezieht sich nicht auf Wert" Fehler in C++ prozedurale
#include <stdio.h>
typedef struct Elem {
float Element;
}ELEM;
typedef struct Vector {
unsigned int size = 0;
Elem *numbers[];
}VECTOR;
// print_vec:
// prints the vector array if it isn't NULL
// in:
// RefToVector - single dimensional array of Elem's
// Out:
// Returns true if the array isn't NULL and it has something to print, NULL if otherwise
bool print_vec(Vector *numbers) {
if (numbers != NULL) {
printf("%f", numbers);
return true;
}
else {
return NULL;
}
}
// *alloc_vec
// Allocates an empty vector array
// In:
// Nothing
// Out:
// A newly allocated vector array
Vector *alloc_vec() {
Vector *numbers = new Vector;
return numbers;
}
// dealloc_vec
// deallocates array
// In:
// an allocated array
// out:
// Return: True if successfull, NULL if not
void dealloc_vec(Vector *numbers) {
delete Vector *numbers;
}
// extend_vec
// Extends the vector by one element in size
// In:
// Vector array of x elements
// Out:
// Vector array of x + 1 elements
// Return:
// A pointer to the new vector
Vector *extend_vec(Vector *numbers, Elem) {
Vector *bigger = alloc_vec();
bigger->size = numbers->size + 1; // set the size of the new vector to the size of the old plus one more element
for (int i = 0; i <= numbers->size; i++) {
bigger[i] = numbers[i]; // step through the vectors and copy the values
}
bigger[bigger->size-1] = Elem; // set last place in the new vector to the new element
return bigger;
}
// scalar_plus
// Steps through the vector elements' and adds the same value to all of them
// In:
// Reference to a vector(array)
// Out:
// Return: reference to vector with Elem value added to each
Vector *scalar_plus(Vector *numbers, Elem) {
for (unsigned int i = 0; i <= numbers->size; i++){
numbers[i] = numbers[i] + Elem;
}
return numbers;
}
Meine Fehler sind alle gleich. und hier sind sie
vecalc.cc:49:12: error: 'Vector' does not refer to a value
delete Vector *numbers;
^
vecalc.cc:8:16: note: declared here
typedef struct Vector {
^
vecalc.cc:67:30: error: 'Elem' does not refer to a value
bigger[bigger->size-1] = Elem; // set last place in the new vector t...
^
vecalc.cc:4:16: note: declared here
typedef struct Elem {
^
vecalc.cc:64:23: warning: comparison of integers of different signs: 'int' and
'unsigned int' [-Wsign-compare]
for (int i = 0; i <= numbers->size; i++) {
~^~~~~~~~~~~~~~
vecalc.cc:81:35: error: 'Elem' does not refer to a value
numbers[i] = numbers[i] + Elem;
^
vecalc.cc:4:16: note: declared here
typedef struct Elem {
^
vecalc.cc:98:4: error: 'Vector' does not refer to a value
*Vector = *alloc_vec();
^
vecalc.cc:8:16: note: declared here
typedef struct Vector {
^
vecalc.cc:99:11: error: 'Vector' does not refer to a value
assert(&Vector == NULL)
^
vecalc.cc:8:16: note: declared here
typedef struct Vector {
^
vecalc.cc:103:14: error: 'Vector' does not refer to a value
print_vec(*Vector);
^
vecalc.cc:8:16: note: declared here
typedef struct Vector {
^
und weil sie alle gleich ich bin sicher, wenn ich herausfinden, wie man beheben Ich werde sie alle ..
Sie verwenden Strukturnamen, an denen Sie Variablen platzieren sollen. Sie müssen den Unterschied lernen. – Barmar
Ich stimme ab, diese Frage als off-topic zu schließen, weil sie nicht einmal die grundlegendste Forschung zeigt. – IInspectable
Es ist eigentlich eine ziemlich gute schriftliche Frage. Ich stimme zu, dass dies eine elementare Sache ist, aber der Code ist klar geschrieben und sogar deutlich kommentiert. Wenn jede Frage mit einer niedrigeren Qualität als diese geschlossen wäre, würden nur ein paar Dutzend Fragen pro Tag bleiben. – Rasty