Hirdetés
- Okosóra és okoskiegészítő topik
- One mobilszolgáltatások
- Itt az első hivatalos poszter a Galaxy S26 Ultrához
- Szívós, szép és kitartó az új OnePlus óra
- Egy óra, két rendszer
- Feltűnt az Xperia 1 VIII és 10 VIII az IMEI adatbázisban
- Apple iPhone 17 Pro Max – fennsík
- Bemutatkozott a Poco X7 és X7 Pro
- Google Pixel topik
- Yettel topik
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
Akkor lehet, hogy valami fogalmi képzavar esete forog fenn nálam, vagy nem vágom,
de az alábbi példaprogram jól szemlélteti a dinamikus memóriafoglalást, amire gondoltam, itt az eredeti tömbből egy új tömbbe gyűjti az eredeti tömbben szereplő, átlag alatti számokat, és pont akkora memóriát foglalunk le az új tömbnek, amennyire szükség van, nem többet, nem kevesebbet:#include <stdio.h>
#include <stdlib.h>
double *atlagalatt(double tomb[], int meret, int *ujmeret){
double *ujtomb;
int i, db, to;
double szum, atlag;
/* mi az atlag */
szum=0;
for (i=0; i<meret; ++i)
szum+=tomb[i];
atlag=szum/meret;
/* hany olyan van */
db=0;
for (i=0; i<meret; ++i)
if (tomb[i]<atlag)
db++;
/* foglalas es paranoia */
ujtomb=(double*)malloc(db*sizeof(double));
if (!ujtomb) {
*ujmeret=0;
return NULL;
}
/* masolas */
to=0;
for (i=0; i<meret; ++i)
if (tomb[i]<atlag)
ujtomb[to++]=tomb[i];
*ujmeret=db;
return ujtomb;
}
int main(){
double eredeti[100];
double *uj;
int ujmeret;
int i;
for (i=0; i<100; ++i)
eredeti[i]=rand()%100/10.0;
uj=atlagalatt(eredeti, 100, &ujmeret);
for (i=0; i<ujmeret; ++i)
printf("%4.2g ", uj[i]);
free(uj);
}Szerk.: Forrás: [link]
Sőt, ha már linkeltem, itt látható a 4-es feladatban a futásidőben történő memóriafoglalás:
#include <stdio.h>
#include <stdlib.h>
char ** darabol(char *s,char *m,int *db){
int n=0,i,last=0;
char **p;
// szavak számolása
for(i=0;s[i]!=0;i++){
int j;
for(j=0; m[j]!=0 && s[i]!=m[j]; j++);
if(m[j]!=0 && i!=last){
n++;
last=i+1;
}
}
p=(char**)malloc(n*sizeof(char*));
if(p==NULL)exit(-1);
for(i=n=last=0;s[i]!=0;i++){
int j;
for(j=0; m[j]!=0 && s[i]!=m[j]; j++);
if(m[j]!=0 && i!=last){
p[n]=(char*)malloc(i-last+1);
if(p[n]==NULL)exit(-1);
for(j=last;j<i;j++)p[n][j-last]=s[j];
p[n][j-last]=0;
n++;
last=i+1;
}
}
*db=n;
return p;
}
int main(int db,char ** par){
FILE * fp;
char sor[1025];
int meret;
if(db<3)return -1;
fp=fopen(par[1],"rt");
if(fp==NULL)return -1;
while(fgets(sor,1025,fp)!=NULL){
char **p=darabol(sor,par[2],&meret);
while(meret--)free(p[meret]);
free(p);
}
}
Ú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!
- Parfüm topik
- Forza sorozat (Horizon/Motorsport)
- Milyen videókártyát?
- Samsung Galaxy Felhasználók OFF topicja
- Okosóra és okoskiegészítő topik
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Villanyszerelés
- Építő/felújító topik
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Kormányok / autós szimulátorok topikja
- További aktív témák...
- P15 Gen2i 15.6" FHD IPS i7-11850H RTX A3000 32GB 512GB NVMe magyar vbill ujjolv IR kam gar
- Laptopok, PC-k, alaktrészek, alapok, és egyéb kiegészítőlk kiárusítása, garanciával!!!
- iPad Pro 11-inch (M4) Wi-Fi 256GB
- Samsung Galaxy S24 5G DS 8 + 128GB még gyári garanciával eladó!
- Ideapad Flex 5 16IAU7 2-in-1 16" FHD+ IPS érintő i5-1235U 8GB 256GB NVMe magyar vbill gar
- Azonnali készpénzes nVidia RTX 4000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- BESZÁMÍTÁS! 4TB Seagate Skyhawk ST4000 SATA HDD meghajtó garanciával hibátlan működéssel
- LG 65C3 - 65" OLED evo - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox!
- www.stylebolt.hu - Apple eszközök és tartozékok!
- Akció! Felsőkategóriás Gamer PC! I9 14900K / RTX 5080 16GB / 32GB RAM / 2TB Nvme SSD
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs



