Torna indietro   Hardware Upgrade Forum > Software > Programmazione

AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI è l'appuntamento annuale con il quale l'azienda americana mostra quelle che sono le proprie novità dal versante datacenter. Tra piattaforma Helios, GPU Instinct MI455X e processori EPYC di sesta generazione tutto quello che serve per processare l'IA sempre più complessa ed esigente
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader
BOOX Go 6 Gen II porta per la prima volta il supporto allo stilo su un e-reader da 6 pollici, affiancando 3 GB di RAM al collaudato Snapdragon 665 e un design rivisto con scocca posteriore a costolature. Su carta la proposta è interessante, ma Android 11 fuori supporto, l'assenza di un alloggiamento per il pennino e un'autonomia ridotta rispetto agli e-reader tradizionali sono i compromessi da accettare
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro
Lenovo Idea Tab Plus prova a portare un display da 12,1 pollici 2.5K, quattro speaker Dolby Atmos e una batteria da 10.200 mAh sotto la soglia psicologica dei 300 euro, penna inclusa. Lo abbiamo usato per oltre una settimana per capire dove l'azienda ha tagliato e dove invece ha tenuto il punto
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-02-2020, 19:15   #1
9abs
Junior Member
 
Iscritto dal: Jan 2020
Messaggi: 17
esercizio malloc() chiedo suggerimenti (PRINCIPIANTE)

Volevo solo chiedere un'occhiata al codice e delle eventuali correzioni sull'allocazione dinamica..poichè un po insicuro sull'argomento.
Ecco il codice..sembra funzioni.

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


int* carica(int* c);
int* negativi(int* A,int n,int* c);
int* pari(int* A,int n,int* c);

int main(){

	int* A;
	int* B;
	int i,n;
	int* c=&n;

	A=carica(c);                         //carico vett
	printf("stampo vettore dopo la carica\n");
	for(i=0;i<n;i++)			//stampo vett
		printf("%d\n",*(A+i));
		
		
	printf("stampo vettore dopo la f pari\n");
	B=pari(A,n,c);
	for(i=0;i<n;i++)			//stampo vett
		printf("%d\n",*(B+i));
		
	free(A);
	free(B);
}

//----------------------------------------xmalloc per all.dinamica

void* xmalloc(int n){
	
	void* A;
	A=malloc(n * sizeof(int));
		if(A==NULL)
			fprintf(stderr,"errore durante l'allocazione\n");
			
	return A;
}

//---------------------------------------carica un vettore

int *carica(int *c){

	int* A;
	int i;
	int n;
	printf("quanti elementi vuoi inserire?\n");
	scanf("%d",&n);
	
	A=xmalloc(n);
			
	for(i=0;i<n;i++)
		scanf("%d",A+i);
	*c=n;
	return A;
}

//----------------------------------cerco i numeri pari 

int* pari(int A[],int n,int* c){


	int i,j;
	int* B;
	int count=0;
	
	for(i=0;i<n;i++){
		if(A[i]%2==0)
			count++;
		
	}
	
	*c=count;
	B=xmalloc(count);
	
	j=0;
	for(i=0;i<n;i++){
		if(A[i]%2==0){
			B[j]=A[i];
			j++;
		}
	}
	
	return B;
	
}
spero sia stato indentato decentemente. Grazie per l'aiuto!
9abs è offline   Rispondi citando il messaggio o parte di esso
Old 13-02-2020, 13:05   #2
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Codice:
int* c=&n;

	A=carica(c);
Why? Non puoi chiamare carica(&n)?

xmalloc?? --> stampa il messaggio, ma poi in carica non verifichi se A==null...quello è un bug

inoltre esiste xmalloc in alcuni sistemi operativi, come funzione non standard...potresti avere delle collisioni

poi A+i in scanf, è corretto, ma non idiomatico...usa &A[i]

stessa cosa per *(A+i)...usa A[i]

usa gli indici per accedere ad un array...e si, un puntatore ad un'area di memoria allocata dinamicamente, contenente n elementi tutti dello stesso tipo, è un array

per il resto, a prima vista, non vedo errori
pabloski è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader Tascabile e con Android: BOOX Go 6 Gen II &egrav...
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro Recensione Lenovo Idea Tab Plus: il tablet da 12...
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea Oltre il contante e le crypto: tutto sull'Euro D...
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
AMD svela la roadmap EPYC fino al 2030: ...
Il PC che sostituisce il cloud: la grand...
La situazione di ULA per il razzo spazia...
Razzo spaziale cinese Lunga Marcia 3B &e...
ROCm.ai: AMD integra assistenti AI e nuo...
Phanteks XT M5, V5 e V5-LCD disponibili:...
Geely e Ford insieme per l'Europa: firma...
Geekbench 7 è disponibile e cambi...
Data center e cavi sottomarini: pronta u...
Usare la lingua come un mouse: MouthPad ...
IA agentica: la corsa all'implementazion...
No, George Russell non è bollito: ecco c...
HONOR cambia logo: il nuovo volto dell'a...
Cina: corsa ad accaparrarsi le CPU serve...
Giga in Europa e tariffe extra-UE, facci...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 04:21.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v