- iPhone topik
- Samsung Galaxy S25 - végre van kicsi!
- Netfone
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Merész dizájn és új teleobjektív az iPhone 17 Pro mobilokban
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Apple Watch Ultra - első nekifutás
- Samsung Galaxy S24 - nos, Exynos
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- OFFTOPIK: Earfun-lányok Magyarországon
Ú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!
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Formula-1
- Székesfehérvár és környéke adok-veszek-beszélgetek
- Kerékpárosok, bringások ide!
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Hobby elektronika
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- A fociról könnyedén, egy baráti társaságban
- iPhone topik
- Kuponkunyeráló
- További aktív témák...
- Apple iPad Mini 6 Purple 64GB Wi-Fi, Apple Pencil 2nd gen, kitámasztós tokkal
- Intel i5 13th 13600k processzor ELADÓ!
- AMD Ryzen 5 5600X Wraith Stealth dobozos - Aqua garancia 2026.03.07-ig (AM4)
- FUJITSU CELSIUS W5010, Intel i9-10900K, 64GB, 1TB SSD, 2TB HDD, NVIDIA Quadro RTX4000 8GB
- Playseat evolution alcantara , black
- Új, Garanciális (1-3ÉV) Gamer PC-Számítógép, néve szóló számlával! I5 14400F / RTX 5060 / 32GB DDR5
- BESZÁMÍTÁS! Acer KG251QF 24 144Hz FHD TN 1ms monitor garanciával hibátlan működéssel
- ÚJ notebook kitámasztó fából
- HIBÁTLAN iPhone 13 mini 128GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3336
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest