Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > it.comp.os.linux.development > #72

Re: Spreco di memoria e minaccia alla sicurezza

Path csiph.com!news.mixmin.net!aioe.org!.POSTED!not-for-mail
From guido84 <guido84@invalid.invalid>
Newsgroups it.comp.os.linux.development
Subject Re: Spreco di memoria e minaccia alla sicurezza
Date Tue, 13 Jun 2017 07:28:19 +0000 (UTC)
Organization Aioe.org NNTP Server
Lines 82
Message-ID <oho46j$15ph$1@gioia.aioe.org> (permalink)
References <ohm0ck$1rf6$1@gioia.aioe.org> <ohnjbf$9ev$1@virtdiesel.mng.cu.mi.it>
NNTP-Posting-Host 5pvAnyqohzp7LFuaGx7Eaw.user.gioia.aioe.org
X-Complaints-To abuse@aioe.org
X-Notice Filtered by postfilter v. 0.8.2
Xref csiph.com it.comp.os.linux.development:72

Show key headers only | View raw


Il 13/6/2017 04:40:46 enoquick scrisse:
>Il 12/06/2017 07:11, guido84 ha scritto:
>> In tutto il libro che seguo c'e' in continuazione:
>> ......
>> char pippo[81];
>> ......
>> 
>> Esasperato dal doverlo scegliere prima, ho capito che potrei
>> metterci un numero molto grande (es. 1000), ma qui su icol.dev mi
>> e' stato detto di stare molto attento a quel che resta dopo '\0'.
>> 
>> Allora ho fatto la prova con: char pippo[]; e immediatamente gcc
>> m'ha dato un Warning dicendo che l'array veniva inteso di 1 solo
>> carattere, pero' il programma funzionava perfettamente lo stesso.
>> 
>> Allora astutissimamente gli ho messo:
>> char pippo[1];
>> adesso niente Warning e funzionamento sempre perfetto, anche con
>> stringhe lunghissime.
>> 
>> La mia domanda e' questa.
>> Visto che:
>> - pippo[1] e' un puntatore all' INIZIO della stringa (lo dicono
>> in altre pagine)
>> - la fine e' IN OGNI CASO determinata da '\0' o da BLANK (e non
>> dall'81)
>> - l'indirizzo fisico del vettore non e' ancora determinato (viene
>> fissato di volta in volta durante l'esecuzione?),
>> 
>> allora dico: perche' mai nel libro che ho non fanno altro che
>> scrivere in continuazione "char pippo[81];" ?
>> Non sarebbe il caso di mettere SEMPRE "char pippo[1];" ?

>Mi sa che stai confondendo il concetto di puntatore a stringa vs array
>di caratteri
>Ma per capirlo meglio postare un esempio di codice.

Be' me l'ha spiegato Alessandro P., una stringa e' un puntatore
all'inizio piu' \0 alla fine. Si puo' mettere dentro un array
statico, oppure allocando (dinamicamente) spazio in memoria con
malloc, dal puntatore fino al numero di byte che si danno a
malloc stesso.

Un array invece non e' detto che abbia \0, e' semplicemente un
puntatore alla prima cella piu' il numero di celle riservate a
lui, non importa se e cosa ci sia gia' dentro o ci si metta.

Adesso devo sviscerarlo bene, ma ho gia' fatto il malloc per i
caratteri, poi lo faro' per gli interi e i reali.

Questo l'ho trovato fatto, devo capire ancora il ruolo delle
tonde (char *) prima di malloc(), e anche le doppie parentesi
di if, spero-penso che siano come per la bash:

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

int main(int argc, char **argv)
{
char *stringa;
//if((stringa = (char *) malloc(2147483647)) == NULL) // 0x7fff.ffff
if ((stringa = (char *) malloc(0x09fffffff)) == NULL)
{
printf("memoria insufficiente \n");
exit(1);
}
printf("OK \n");

return 0;
}
------------

Non so perche' con gli esa ne prende di piu': 9fff.ffff contro
gli equivalenti di 7fff.ffff coi decimali.


-- 
Saluti,
Guido

Back to it.comp.os.linux.development | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Spreco di memoria e minaccia alla sicurezza guido84 <guido84@invalid.invalid> - 2017-06-12 12:11 +0000
  Re: Spreco di memoria e minaccia alla sicurezza Alessandro Pellizzari <shuriken@amiran.it> - 2017-06-12 15:01 +0100
    Re: Spreco di memoria e minaccia alla sicurezza guido84 <guido84@invalid.invalid> - 2017-06-12 14:57 +0000
      Re: Spreco di memoria e minaccia alla sicurezza Alessandro Pellizzari <shuriken@amiran.it> - 2017-06-12 17:14 +0100
  Re: Spreco di memoria e minaccia alla sicurezza enoquick <enoquick@gmail.com> - 2017-06-12 21:40 -0500
    Re: Spreco di memoria e minaccia alla sicurezza guido84 <guido84@invalid.invalid> - 2017-06-13 07:28 +0000
      Re: Spreco di memoria e minaccia alla sicurezza Alessandro Pellizzari <shuriken@amiran.it> - 2017-06-13 10:16 +0100

csiph-web