Ich habe versucht, mit Strukturen zu experimentieren und kam zu einem Problem Wenn ich bin, Daten einem Zeichenarray eines Strukturelements zuweisen, verwendet der Zeiger einen Fehler : "Zuordnung zu Ausdruck mit Array-Typ". In meinem Code weiß ich, dass ein Array statische Speicherzuweisung verwendet und Zeiger verwendet malloc für die dynamische Speicherzuweisung. Kann mir jemand sagen, wie ich das Problem lösen kann? Code for passing the structure pointer to a function to print the structure dataZuordnung von Daten zum Zeichenarray eines Strukturelements mit Zeiger
Antwort
In Ihrem Beispiel 'c' ist ein Array von 20 Bytes, so könnten Sie strcpy verwenden:
strcpy(struct_pointer->c, "hellos");
Denken Sie daran, dass "Hallos" ist nicht die gleiche Art mit char [20], so sollten Sie versuchen Sie dies:
strcpy(struct_pointer->c, "hellos");
statt Zuordnung eine const char*
-char[20]
Variable
Ihr Code
struct_pointer->c="hellos"
tatsächlich Compiler sagt folgendes tun - für String "hellos"
Plus Nullabschluss Speicher zuordnen und den Zeiger auf diesen Speicher zu struct_pointer->c
zuweisen, die bereits zugeordnet ist, so Compiler Beschwerde ist vollkommen gültig. In C können Sie nicht nur einen char-Array zu einem anderen Array zuweisen, müssen Sie jede Art von Speicher-Kopierfunktion verwenden, zum Beispiel
strcpy(struct_pointer->c, "hellos")
In my code I know that an array uses static memory allocation and pointer uses malloc for dynamic memory allocation
Es ist nicht so, dass in C bekommt man nicht automatische dynamische Speicherzuordnung, es sei denn Sie rufen malloc
oder seine Varianten explizit auf. Speicher für "hellos"
ist auch auf dem Stapel
- 1. Zuordnung eines physischen Geräts zu einem Zeiger im Benutzerbereich
- 2. Zuordnung und Zeiger, undefiniertes Verhalten?
- 3. Ändern der Adresse eines Zeiger-Array-Daten
- 4. Convert CString in Zeichenarray?
- 5. Zuordnung <Zeiger auf Array von Konstanten> = <Zeiger auf Array>: inkompatible Zeiger
- 6. Wie verhält sich der Zeiger zum Array von Zeichen?
- 7. STL-Container Zuordnung und const Zeiger
- 8. Name des gepackten Strukturelements basierend auf Bitposition
- 9. Erstellen eines dynamischen Arrays eines Strukturelements, dann Erstellen eines dynamischen Arrays der Struktur. C++
- 10. Verwenden eines Cookies zum Speichern von Daten
- 11. E4X: Zuordnung zum Wurzelknoten
- 12. Zuordnung Sollwert Zum Wörterbuch
- 13. Warnung: Zuordnung verwirft Qualifier vom Zeiger Zieltyp
- 14. Orchard TagBuilderExtensions - Zuordnung von Klassen zum Modell
- 15. variable Zuordnung zum Eingangswert
- 16. Erstellen eines modalen Fensters zum Laden von Daten mit AngularJS
- 17. Zeiger Erhalten von Zeiger auf ein Mitglied zum Objekt
- 18. Zuordnung von Werten zum 2D-Vektor mit Indizes
- 19. Zuordnung von geliehenen Inhalte
- 20. Zuordnung eines Fremdschlüssels mit einem benutzerdefinierten Spaltennamen
- 21. R - finde Elemente in einem Zeichenarray, das eine Zeichenfolge enthält
- 22. Splitting des String-Array in zweidimensionale Zeichenarray
- 23. Lua Zeiger zum Zusammenführen von 3 Funktionen
- 24. Dereferenzieren eines Members Zeiger
- 25. Zuordnung von der Werberichtlinie zum Produkt funktioniert nicht
- 26. typedef Zeichenarray und Verwendung in Funktionen
- 27. Zuordnung zu * new * Untergruppe eines Pandas DataFrame
- 28. Frage zum NULL-Pointer Zuordnung Partition in einem Prozess Adressraum
- 29. Abrufen von relationalen Daten mit Zeiger in Parse
- 30. C++/OpenGL - Zeiger eines Arrays