- Növelhetik VGA-nk túlélési esélyeit az ASRock tápjai
- Az In Win "lopakodó akváriuma" nem panaszkodhat a szellőzésére
- Máris kezeli a nem induló Socket AM5-ös alaplapjainak ügyét az ASRock
- A Sony szerint a PlayStation 5 konzolokat még nem érinti a memóriahiány
- A beérkező kérésekre figyelve frissítette North szériáját a Fractal
- OLED monitor topic
- Máris kezeli a nem induló Socket AM5-ös alaplapjainak ügyét az ASRock
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Projektor topic
- LG LCD és LED TV-k
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Milyen billentyűzetet vegyek?
- A beérkező kérésekre figyelve frissítette North szériáját a Fractal
- Kész, vége, ennyi volt: eladja tévés üzletágát a Sony
- Noctua-jubileum: 20 év, félmillió ingyenes rögzítőkészlet
Új hozzászólás Aktív témák
-
tototos
addikt
Sziaszto!
Egy érdekes problémával állok szembe. C-ben szeretnék stringeket darabolni. Ez egyenlőre nem tűnik nagy feladatnak, van egy függvényem ami szépen darabolja a dolgokat. A gond ott kezdődik, hogy amikor fel akarok szabadítani a feldarabolt részeknek allokált területet akkor egyszer a free függvény váratlan hibát generál és a mikrovezérlőm elmegy egy végtelen ciklusba.
EZ lenne a daraboló függvény:
char** str_split(char* a_str, const char* a_delim)
{
char** result = 0;
size_t count = 0;
char* tmp = a_str;
char* last_comma = 0;
size_t index;
/* Count how many elements will be extracted. */
while (*tmp)
{
for (index = 0; index < strlen(a_delim); ++index)
{
if (*(a_delim+index) == *tmp)
{
count++;
last_comma = tmp;
}
}
tmp++;
}
/* Add space for trailing token. */
count += last_comma < (a_str + strlen(a_str) - 1);
/* Add space for terminating null string so caller
knows where the list of returned strings ends. */
count++;
result = malloc(sizeof(char*) * count);
if (result)
{
size_t idx = 0;
char* token = strtok(a_str, a_delim);
while (token)
{
assert(idx < count);
*(result + idx++) = strdup(token);
token = strtok(0, a_delim);
}
//assert(idx == count - 1);
*(result + idx) = 0;
}
return result;
}Ez pedig egy része a kódnak:
tokens = str_split(line, ",;");
if (tokens)
{
LINScheduleTable[frameIndex].Frame.SignalIDs_lda16[signalIndex] = atoi(*tokens);
LINScheduleTable[frameIndex].Frame.SignalOffsets_lda8[signalIndex] = atoi(*(tokens+1));
for (i = 0; *(tokens + i); i++)
{
free(*(tokens + i));
}
free(tokens);
}Az érdekesség, hogy ez a részlet meghívódik kb 25-ször, és 26. lépésnél száll el.
Láttok valami hatalmas hibát a kódban?Köszi
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Nyaralás topik
- OLED monitor topic
- Nokia N8 - vajon elég lesz-e?
- Gyúrósok ide!
- Autós topik
- Poco F6 5G - Turbó Rudi
- Máris kezeli a nem induló Socket AM5-ös alaplapjainak ügyét az ASRock
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Elektromos autók - motorok
- Anglia - élmények, tapasztalatok
- További aktív témák...
- Új HP 16 Omen FHD 165Hz G-Sync i7-14700HX 20mag 32GB 1TB SSD Nvidia RTX 4070 8GB 140W Win11 Garancia
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Geforce GTX 1050, 1050 Ti, 1060, 1650, 1660 - GT 1030 - Low profile is (LP)
- iPhone 14 128GB 100% (1év Garancia)
- Akció! HP ZBook Firefly 14 i7-1185G7 32GB 512GB Nvidia Quadro T500 4GB 14" FHD 1 év garancia
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
Cég: Laptopműhely Bt.
Város: Budapest


