» Struct Array char array eingeben

C Listenelemente ausgebenNeuen Thread eröffnenNeue Antwort erstellenmemcpy und Umwandlung von Groß-in Kleinbuchstaben
AutorNachricht
Beobachter 
Anmeldedatum: 30.05.2020
Beiträge: 2
30.05.2020, 17:45
zitieren

Guten Tag,

bin neu hier :) wollte mir ein bisschen Hilfe suchen für mein kleines Programm.
Hab mir ein Struct erstellt mit einer Funktionsvariable (array) mit 3 Komponenten.
Die Größe des Array sollte sich auf 20 Felder begrenzen welche ich nochmals durch die Varaible x verändern kann. Aber leider sagt der Debugger an der markierten Stelle (*)
Speicher nicht initialisiert. Über einen Tipp wäre ich sehr dankbar :)

MfG
Noob


#include <stdio.h>
#include <stdlib.h>

struct ics
{
char typ[10];
int pins;
float preis;
};

int main()
{
struct ics cmos[20];
int i,x;
float a;


printf("Wie viele ICs möchten Sie eingeben ?\n");
scanf_s("%i", &x);

for (i = 0; i < x; i++)
{
printf("Bezeichnung: \n");
scanf_s("%s",cmos[i].typ); // *Speicher nicht initialisiert
printf("Anzahl Pins: \n");
scanf_s("%i", &cmos[i].pins);
printf("Preis: ");
scanf_s("%f", &cmos[i].preis);
}

printf("\n\nEingegeben wurde:\n\n");

for (i = 0; i < x; i++)
{
printf("%s",cmos[i].typ);
printf("Bezeichnung: %i\n", cmos[i].pins);
printf("Bezeichnung: %.2f\n", cmos[i].preis);
}

return 0;
}


pn
Trainee 

Name: Mirko
Geschlecht:
Anmeldedatum: 06.12.2019
Beiträge: 46
Wohnort: Weingarten
31.05.2020, 11:21
zitieren

Hallo Noob,

zunächst einmal wäre eine saubere Darstellung deines Codes hilfreich. Nicht böse gemeint. ;)

Weiterhin funktioniert dein Code ja eigentlich, nur solltest Du beachten, dass Du die Größe eines Arrays eigentlich nicht dynamisch verändern kannst. Nicht falsch verstehen. Ich weiß, dass die neuen Compiler das bereits zulassen und es funktioniert. Jedoch habe ich bereits unzählige Male gelesen, dass man aus diversen Gründen darauf verzichten soll. Sei's drum. Ich habe deinen Code angeschaut und konnte bis auf die komische Ausgabe am Ende nichts Problematisches feststellen. Zumindest wird der Code bei mir fehlerfrei kompiliert und ausgeführt.
Erst wenn ich z.B. 21 Einträge anstatt die im Code festgelegten 20 anlege und eingebe, bricht das Programm bei der Ausgabe unschön ab, da man auf einen Speicherbereich zugreifen möchte, der einem eigentlich gar nicht gehört. An dieser Stelle solltest Du dir unbedingt Gedanken machen, wie Du das abfangen kannst. Ist ja letztendlich nur eine if-else-Geschichte.

In Zukunft, wie oben angesprochen, deinen Code bitte formattiert darstellen. Danke sehr... :P
#include <stdio.h>
#include <stdlib.h>

struct ics{
    char typ[10];
    int pins;
    float preis;
};

int main(){
    struct ics cmos[20];
    int i,x;

    printf("Wie viele ICs möchten Sie eingeben ?\n");
    scanf("%i", &x);
...
}


pn
Beobachter 
Anmeldedatum: 30.05.2020
Beiträge: 2
01.06.2020, 20:20
zitieren

Mach ich nächstes mal :) und danke für deine schnelle Unterstützung.
Guten Start in die Woche


pn
Gast 
01.06.2020, 20:20
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "Struct Array char array eingeben" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter Beitrag
Array Ausgeben
Hi Leute, habe gerade folgenden Code verfasst... public class Array { public static void changeArray(int[] array) { for(int i= 0; i < array.length; i++) { if(array[i] % 2==0) { array[i]= array[i]*-1; } else { array[i]=array[i]*10; } } } public static...
[Java]von DeppJonez
1
359
01.02.2017, 19:42
angemon
Array befüllen
Hallo liebe Gemeinde, ich bin gerade am Java erlernen und habe folgendes Problem: In einem Array sollen per Eingabe Breite/Länge/Höhe an einem Index im Array übergeben werden. Ich schaffe es nicht, diese drei Werte ins Array zu schreiben. Das ist mein...
[Java]von Columbus
0
370
26.05.2021, 15:10
Columbus
array in funktion
Hallo , ich möchte 4 zahlen nach der Größe sortieren, das ist für mich Jetzt kein Problem, allerdings möchte ich die Sortierung in einer Funktion machen. Aber die zahlen sollen trotzdem in der main ausgegeben werden also call by reference, kann mir...
[C++]von arti1012
1
356
28.06.2015, 13:33
arti1012
Ausgabe Array Länge
Hallo zusammen, ich bin gerade am verzweifeln. Ich versuche ein "Int"-Array auszugeben. Dies mache ich über sizeof(array)/sizeof(int). Hierbei werden aber nicht die richtigen Werte ausgeben. Setze ich die Werte manuell passt es. Wo liegt den...
[C]von freakontour
2
341
19.04.2020, 20:29
freakontour
Benchmark: Prepared Statements in Array
Hi, hier die Resultate: /* // version 1 // 1. run 0.14501937151 // 2. run 0.145541801453 // 3. run 0.141622686386 // fastest run 0.0934751033783 while ($field = $meta->fetch_field()) { $row[] =...
[PHP]von mgutt
0
496
09.10.2009, 18:39
mgutt
Hilfe bei C-Programm / Zahlen aus einer Datei in ein Array einlesen.
Hallo, ich bräuchte mal eure Hilfe für ein kleines C-Programm: - in einer TXT-Datei befinden sich als Beispiel 3 Zahlenreihen mit jeweil 6 Zahlen in 1 Reihe: BSP: Test.txt 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Die Zahlen sind durch ein...
[C]von Vision73
0
145
15.05.2023, 16:28
Vision73
Mein Programm soll einen zu langen string in ein array einlesen, überschreiben und ausgeben
Hallo, Kann mir jemand sagen, warum es hier nicht wie gewünscht z.B. die ausgabe "hellooo" gibt sondern stack smashing? Woher kommt die leerzeile bei meiner Terminal ausgabe: helloooo &#x2A;&#x2A;&#x2A; stack smashing detected...
[C]von john_38
2
58
10.01.2024, 07:09
john_38
 Was bewirkt --> unsigned char (void)
Hallo zusammen, habe eine Aufgabe im Anhang und kann sie nicht wirklich lösen. unsigned char (void) .Kann mir jemand verraten was void bewirkt, wenn es in den Klammern steht? Das es keinen Funktionswert zurückgibt, wenn es vor der Klammer steht weiß...
[C]von Plagiat
1
1.304
01.09.2021, 09:07
Guiseppe
Bot soll automatisch ID und PW eingeben
Also, ich habe nochnicht so viel Erfahrung mit dem programmieren, aber ich will unbedingt einen "Bot" erstellen, der folgendes tut: Wenn an einer bestimmten Stelle auf den Bildschirm ein bestimmter farbton gefunden wird, gibt der bot...
[Allgemein]von chris30o0
3
451
09.05.2009, 10:25
mgutt
Selbsgeschriebene Funktion getint() und getuchar() liest Bytes aus Datei als int und unsigned char
Hallo Leute! Wer erst kürzlich von c auf c++ umgestiegen ist und mit Dateien experimentiert, in dem Zahlen als Bytes gespeichert sind, wird sich mit der Methode get etwas schwer tun, denn diese liest nur Bytes aus einer Datei als signed char -Werte...
[C++]von Guiseppe
0
252
19.01.2016, 17:38
Guiseppe
© 2004 - 2025 www.programmierer-forum.de | Communities | Impressum |