Hirdetés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- Luck Dragon: MárkaLánc
- gban: Meghalt Chuck Norris
- gban: Ingyen kellene, de tegnapra
- sziku69: Fűzzük össze a szavakat :)
- Wiz Khalifa: Grand Theft Auto V - Látványosságok és érdekességek tárháza egy helyen!
- aquark: Zsebszámológépek
- talmida: Változások 2. rész
Ú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!
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Kínai és egyéb olcsó órák topikja
- Battlefield 6
- Samsung kuponkunyeráló
- PlayStation 5
- Nem fut az Intel grafikus vezérlőin az év egyik legjobban várt címe
- Last Epoch
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- iPhone topik
- Xiaomi 17 - még mindig tart
- További aktív témák...
- LG UltraGear 27GR75Q-B 2K/IPS/165HZ (086)
- !!GARIS 2027.09.11!! ASUS TUF FA507 R5 7535HS/16 GB DDR5/1.5 TB M2 SSD/RTX 4050 6 GB
- Google Pixel 10a 128gb - Új, bontatlan, garanciális, akár beszámítással
- -BONTATLAN- Corsair VENGEANCE LPX 32GB (2x16GB) DDR4 3600MHz (Beszámítás)
- -BONTATLAN- Corsair VENGEANCE LPX 32GB (2x16GB) DDR4 3200MHz (Beszámítás)
- Xbox One S Minecraft Edition 1 TB + kontroller 6 hó garancia, számlával!
- Honor 200 Pro 512GB,Újszerű,Dobozaval,12 hónap garanciával
- iPhone gyári/emelt kapacitású akkumulátor csere 6 HÓNAP GARANCIÁVAL
- Samsung Galaxy S20 Ultra / 12/128GB / Kártyafüggetlen / 12Hó Garancia
- 27% - DDR5 Notebook 16GB / 32GB / 48GB RAM
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

