Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Lazy dope vectors by Henry Kroll III www.thenerdshow.com
Language:
Ada
Assembly
Bash
C#
C++ (gcc)
C++ (clang)
C++ (vc++)
C (gcc)
C (clang)
C (vc)
Client Side
Clojure
Common Lisp
D
Elixir
Erlang
F#
Fortran
Go
Haskell
Java
Javascript
Kotlin
Lua
MySql
Node.js
Ocaml
Octave
Objective-C
Oracle
Pascal
Perl
Php
PostgreSQL
Prolog
Python
Python 3
R
Rust
Ruby
Scala
Scheme
Sql Server
Swift
Tcl
Visual Basic
Layout:
Vertical
Horizontal
//clang 3.7.0 #include <stdio.h> //simple c89 dope vector Copyright(C) 2016 Henry Kroll III www.thenerdshow.com typedef float data_t; typedef struct { char *name; size_t length; data_t *data; } ds; //print function void print_array (ds *dv) { printf("%s->data = (data_t[%li]){", dv->name, dv->length); for(int i=0;i<dv->length;i++) { printf("%3.1f, ", dv->data[i]); } puts("}"); } //define NEW dope vector, get size, reserve memory, and init (do not free()) #define NEW(id, ...) \ ds *id=&(ds){#id, sizeof(data_t[]){__VA_ARGS__}/sizeof (data_t), \ (data_t[]){__VA_ARGS__}} //main int main (void) { //easily create new dope vector pointer and memory without malloc NEW(dv, 0,1,2,3,4,5); //no more using &reference operator to pass it to functions print_array (dv); //access data with arrow-> not dot printf ("dv->data[2]=%3.1f\n", dv->data[2]); return 0; }
clang
Show compiler warnings
[
+
] Compiler args
[
+
]
Show input
Compilation time: 0.23 sec, absolute running time: 0.08 sec, cpu time: 0.03 sec, memory peak: 3 Mb, absolute service time: 0,31 sec
edit mode
|
history
|
discussion
dv->data = (data_t[6]){0.0, 1.0, 2.0, 3.0, 4.0, 5.0, } dv->data[2]=2.0